package top.xia17.plugins.fast.common.database.jpa.nsql;

import lombok.RequiredArgsConstructor;

import jakarta.persistence.EntityManager;
import java.util.Map;

/**
 * 原生Sql构造器
 * @author xia17
 * @date 2020/7/15 9:17
 */
@RequiredArgsConstructor
public class NativeQueryBuilder {


    private final EntityManager entityManager;


    /**
     * 创建一个原生Sql查询模板
     * @param sql sql语句
     * @param queryParam 查询参数 ?表达式 使用 jpa 中的 :paramName 方式  ，所以是个Map
     * @param result 结果转换
     * @return NativeQueryTemplate
     */
    public NativeQueryTemplate createTemplate(String sql , Map<String,Object> queryParam , String[] result){
        return new NativeQueryTemplate(entityManager,sql,queryParam,result);
    }

    /**
     * 创建一个原生Sql查询模板
     * @param sql sql语句
     * @param queryParam 查询参数 ?表达式 使用 jpa 中的 :paramName 方式  ，所以是个Map
     * @return NativeQueryTemplate
     */
    public NativeQueryTemplate createTemplate(String sql , Map<String,Object> queryParam ){
        return new NativeQueryTemplate(entityManager,sql,queryParam,null);
    }


}
